package io.shuttle.mbe.api.impl

import io.shuttle.mbe.api.Action
import io.shuttle.mbe.api.BrowserAction
import io.shuttle.mbe.api.ColorArray
import io.shuttle.mbe.api.Tabs
import io.shuttle.mbe.api.types.EventTarget
import io.shuttle.mbe.api.types.Value1Function
import io.shuttle.mbe.api.types.VoidFunction
import io.shuttle.mbe.core.Promise

class ActionImpl : Action {
    override fun disable(tabId: Int?): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun disable(callback: VoidFunction) {
        TODO("Not yet implemented")
    }

    override fun disable(tabId: Int?, callback: VoidFunction) {
        TODO("Not yet implemented")
    }

    override fun enable(tabId: Int?): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun enable(callback: VoidFunction) {
        TODO("Not yet implemented")
    }

    override fun enable(tabId: Int?, callback: VoidFunction) {
        TODO("Not yet implemented")
    }

    override fun getBadgeBackgroundColor(details: Action.TabDetails): Promise<ColorArray> {
        TODO("Not yet implemented")
    }

    override fun getBadgeBackgroundColor(
        details: Action.TabDetails,
        callback: Value1Function<ColorArray>
    ) {
        TODO("Not yet implemented")
    }

    override fun getBadgeText(details: Action.TabDetails): Promise<String> {
        TODO("Not yet implemented")
    }

    override fun getBadgeText(
        details: Action.TabDetails,
        callback: Value1Function<String>
    ) {
        TODO("Not yet implemented")
    }

    override fun getBadgeTextColor(details: Action.TabDetails): Promise<ColorArray> {
        TODO("Not yet implemented")
    }

    override fun getBadgeTextColor(
        details: Action.TabDetails,
        callback: Value1Function<ColorArray>
    ) {
        TODO("Not yet implemented")
    }

    override fun getPopup(details: Action.TabDetails): Promise<String> {
        TODO("Not yet implemented")
    }

    override fun getPopup(
        details: Action.TabDetails,
        callback: Value1Function<String>
    ) {
        TODO("Not yet implemented")
    }

    override fun getTitle(details: Action.TabDetails): Promise<String> {
        TODO("Not yet implemented")
    }

    override fun getTitle(
        details: Action.TabDetails,
        callback: Value1Function<String>
    ) {
        TODO("Not yet implemented")
    }

    override fun getUserSettings(): Promise<Action.UserSettings> {
        TODO("Not yet implemented")
    }

    override fun getUserSettings(callback: Value1Function<Action.UserSettings>) {
        TODO("Not yet implemented")
    }

    override fun isEnabled(tabId: Number?): Promise<Boolean> {
        TODO("Not yet implemented")
    }

    override fun isEnabled(callback: Value1Function<Boolean>) {
        TODO("Not yet implemented")
    }

    override fun isEnabled(
        tabId: Number?,
        callback: Value1Function<Boolean>
    ) {
        TODO("Not yet implemented")
    }

    override fun openPopup(options: Action.OpenPopupOptions?): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun openPopup(callback: VoidFunction) {
        TODO("Not yet implemented")
    }

    override fun openPopup(
        options: Action.OpenPopupOptions?,
        callback: VoidFunction
    ) {
        TODO("Not yet implemented")
    }

    override fun setBadgeBackgroundColor(details: Action.BadgeColorDetails): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun setBadgeBackgroundColor(
        details: Action.BadgeColorDetails,
        callback: VoidFunction
    ) {
        TODO("Not yet implemented")
    }

    override fun setBadgeText(details: BrowserAction.BadgeTextDetails): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun setBadgeText(
        details: BrowserAction.BadgeTextDetails,
        callback: VoidFunction
    ): Void {
        TODO("Not yet implemented")
    }

    override fun setBadgeTextColor(details: Action.BadgeColorDetails): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun setBadgeTextColor(
        details: Action.BadgeColorDetails,
        callback: VoidFunction
    ): Void {
        TODO("Not yet implemented")
    }

    override fun setIcon(details: Action.TabIconDetails): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun setIcon(
        details: Action.TabIconDetails,
        callback: VoidFunction
    ): Void {
        TODO("Not yet implemented")
    }

    override fun setPopup(details: Action.PopupDetails): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun setPopup(
        details: Action.PopupDetails,
        callback: VoidFunction
    ): Void {
        TODO("Not yet implemented")
    }

    override fun setTitle(details: Action.TitleDetails): Promise<Void> {
        TODO("Not yet implemented")
    }

    override fun setTitle(
        details: Action.TitleDetails,
        callback: VoidFunction
    ): Void {
        TODO("Not yet implemented")
    }

    override var onClicked: EventTarget<Value1Function<Tabs.Tab>>
        get() = TODO("Not yet implemented")
        set(value) {}
    override var onUserSettingsChanged: EventTarget<Value1Function<Action.UserSettingsChange>>
        get() = TODO("Not yet implemented")
        set(value) {}
}